﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TMD.GT.Entidades;
using TMD.GT.AccesoDatos.Map;
using TMD.GT.AccesoDatos.Contrato;
using TMD.GT.AccesoDatos.Core;
using System.Data.Common;
using System.Data;
using TMD.Contrato;

namespace TMD.GT.AccesoDatos.Implementacion
{
    public class RiesgoComponenteData : DataBase, IRiesgoComponenteData
    {

        public RiesgoComponenteData(String connectionString)
            : base(connectionString)
        {
        }


        public List<RiesgoComponente> ListarRiesgoComponente(Componente componente)
        {
            List<RiesgoComponente> listaRiesgoComponente = new List<RiesgoComponente>();

            using (DbCommand command = DB.GetStoredProcCommand("dbo.USP_RIESGOCOMPONENTE_SEL"))
            {
                DB.AddInParameter(command, "@CODIGO_componente", DbType.Int32, componente.CodigoComponente);
                using (IDataReader reader = DB.ExecuteReader(command))
                {
                    while (reader.Read())
                    {
                        listaRiesgoComponente.Add(RiesgoComponenteMap.Select(reader));
                    }
                }
            }

            return listaRiesgoComponente;
        }


        public void InsertaRiesgoComponente(int codigo_riesgo, string codigo_componente, int probabilidad, int impacto)
        {
            using (DbCommand command = DB.GetStoredProcCommand("dbo.USP_RIESGO_COMPONENTE_INS"))
            {
                DB.AddInParameter(command, "@CODIGO_RIESGO", DbType.Int32, codigo_riesgo);
                DB.AddInParameter(command, "@CODIGO_COMPONENTE", DbType.String, codigo_componente);
                DB.AddInParameter(command, "@PROBABILIDAD", DbType.Int32, probabilidad);
                DB.AddInParameter(command, "@IMPACTO", DbType.Int32, impacto);
                DB.ExecuteNonQuery(command);
            }
        }



        public void EliminaRiesgoComponente(string codigo_componente)
        {
            using (DbCommand command = DB.GetStoredProcCommand("dbo.USP_RIESGO_COMPONENTE_DEL"))
            {
                DB.AddInParameter(command, "@CODIGO_COMPONENTE", DbType.String, codigo_componente);
                DB.ExecuteNonQuery(command);
            }
        }



        





    }
}
